When thermal interrupt happened when vmx guest is running,
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 22 Feb 2006 08:54:20 +0000 (09:54 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 22 Feb 2006 08:54:20 +0000 (09:54 +0100)
smp_thermal_interrupt() should be called.

Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
xen/arch/x86/hvm/vmx/vmx.c

index 08a9115a32b3afe64e683a3ea6f55509b5a3ac42..9b935d4df67bb48fda39fdd8c3134b5fcf02331d 100644 (file)
@@ -1753,6 +1753,9 @@ static inline void vmx_vmexit_do_extint(struct cpu_user_regs *regs)
     fastcall void smp_call_function_interrupt(void);
     fastcall void smp_spurious_interrupt(struct cpu_user_regs *regs);
     fastcall void smp_error_interrupt(struct cpu_user_regs *regs);
+#ifdef CONFIG_X86_MCE_P4THERMAL
+    fastcall void smp_thermal_interrupt(struct cpu_user_regs *regs);
+#endif
 
     if ((error = __vmread(VM_EXIT_INTR_INFO, &vector))
         && !(vector & INTR_INFO_VALID_MASK))
@@ -1780,6 +1783,11 @@ static inline void vmx_vmexit_do_extint(struct cpu_user_regs *regs)
     case ERROR_APIC_VECTOR:
         smp_error_interrupt(regs);
         break;
+#ifdef CONFIG_X86_MCE_P4THERMAL
+    case THERMAL_APIC_VECTOR:
+        smp_thermal_interrupt(regs);
+        break;
+#endif
     default:
         regs->entry_vector = vector;
         do_IRQ(regs);